/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"FE50D843-45FF-4052-A0EC-6A787A153022",variableType:4}
 */
var fAnulaEfectivo = 0;


/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"181EF90A-8049-40B4-921F-4E45B0B49B99"}
 */
function anular(event) {
	var $concepto = 'Anulación Boleta de Depósito Nº ' + boleta_detalle_to_boleta_cabecera.boleta_nro;
	
	var fs_movim_cyb = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'movim_cyb')
	var $cheques = 0
	
	if (!boleta_detalle_to_boleta_cabecera.caja_origen_id)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Por favor, ingrese la caja de origen antes de continuar','OK')
		return false
	}
	
	var i = 1
	databaseManager.startTransaction()
	while (i <= foundset.getSize())
	{
		var $rcd = foundset.getRecord(i)
		
		if ($rcd.marca_anula == 1)
		{
			// regrabar estado de cheque
			$rcd.boleta_detalle_to_cheques.estado = globals.zconf_chq_en_caja
			
			// egreso de bancos
			fs_movim_cyb.newRecord()
			fs_movim_cyb.cheque_id			= $rcd.cheque_id
			fs_movim_cyb.cod_movim			= globals.zconf_cyb_cod_movim_egreso
			fs_movim_cyb.concepto			= $concepto + ' - ' + $rcd.boleta_detalle_to_boleta_cabecera.boleta_nro + ' - Cheque ' + $rcd.cheque_id
			fs_movim_cyb.cuentas_cyb_id		= $rcd.boleta_detalle_to_boleta_cabecera.cuentas_cyb_id
			fs_movim_cyb.empresa_id			= 0 
			fs_movim_cyb.fecha_conciliacion = null
			fs_movim_cyb.fecha_movim		= application.getServerTimeStamp()
			fs_movim_cyb.importe			= $rcd.importe
			fs_movim_cyb.imputacion_id		= globals.zconf_cyb_imputacion_deposito
			fs_movim_cyb.marca_conciliacion	= 0  
			fs_movim_cyb.referencia			= $rcd.boleta_detalle_to_cheques.cheque_nro
			fs_movim_cyb.valor_id			= $rcd.boleta_detalle_to_cheques.valor_id
			
			// ingreso a caja
			fs_movim_cyb.newRecord()
			fs_movim_cyb.cheque_id			= $rcd.cheque_id
			fs_movim_cyb.cod_movim			= globals.zconf_cyb_cod_movim_ingreso
			fs_movim_cyb.concepto			= $concepto + ' - ' + $rcd.boleta_detalle_to_boleta_cabecera.boleta_nro + ' - Cheque ' + $rcd.cheque_id 
			fs_movim_cyb.cuentas_cyb_id		= boleta_cabecera_to_boleta_detalle.boleta_detalle_to_cheques.cuentas_cyb_id
			fs_movim_cyb.empresa_id			= 0 
			fs_movim_cyb.fecha_conciliacion	= null
			fs_movim_cyb.fecha_movim		= application.getServerTimeStamp()
			fs_movim_cyb.importe			= $rcd.importe
			fs_movim_cyb.imputacion_id		= globals.zconf_cyb_imputacion_deposito
			fs_movim_cyb.marca_conciliacion	= 0 
			fs_movim_cyb.referencia			= $rcd.boleta_detalle_to_cheques.cheque_nro
			fs_movim_cyb.valor_id			= $rcd.boleta_detalle_to_cheques.valor_id
			
			// acumular total de cheques
			$rcd.boleta_detalle_to_boleta_cabecera.importe_cheques -= $rcd.importe;
			$cheques += $rcd.importe
			foundset.deleteRecord()
		}
		else
			i++
	}
	
	if (fAnulaEfectivo == 1)
	{
		var $efectivo = $rcd.boleta_detalle_to_boleta_cabecera.importe_efectivo
		$rcd.boleta_detalle_to_boleta_cabecera.importe_efectivo = 0
		
		// Egreso de efectivo del banco
		fs_movim_cyb.newRecord()
		fs_movim_cyb.cheque_id			= null
		fs_movim_cyb.cod_movim			= globals.zconf_cyb_cod_movim_egreso
		fs_movim_cyb.concepto			= $concepto + ' - ' + $rcd.boleta_detalle_to_boleta_cabecera.boleta_nro + ' - Efectivo'
		fs_movim_cyb.cuentas_cyb_id		= $rcd.boleta_detalle_to_boleta_cabecera.cuentas_cyb_id
		fs_movim_cyb.empresa_id			= 0 
		fs_movim_cyb.fecha_conciliacion	= null
		fs_movim_cyb.fecha_movim		= application.getServerTimeStamp()
		fs_movim_cyb.importe			= $efectivo
		fs_movim_cyb.imputacion_id		= globals.zconf_cyb_imputacion_deposito
		fs_movim_cyb.marca_conciliacion	= 0  
		fs_movim_cyb.referencia			= 'Efectivo'
		fs_movim_cyb.valor_id			= 1  // efectivo

		// ingreso de efectivo a caja ingresada
		fs_movim_cyb.newRecord()
		fs_movim_cyb.cheque_id			= null
		fs_movim_cyb.cod_movim			= globals.zconf_cyb_cod_movim_ingreso
		fs_movim_cyb.concepto			= $concepto + ' - ' + $rcd.boleta_detalle_to_boleta_cabecera.boleta_nro + ' - Efectivo'
		fs_movim_cyb.cuentas_cyb_id		= $rcd.boleta_detalle_to_boleta_cabecera.caja_origen_id
		fs_movim_cyb.empresa_id			= 0 
		fs_movim_cyb.fecha_conciliacion	= null
		fs_movim_cyb.fecha_movim		= application.getServerTimeStamp()
		fs_movim_cyb.importe			= $efectivo
		fs_movim_cyb.imputacion_id		= globals.zconf_cyb_imputacion_deposito
		fs_movim_cyb.marca_conciliacion	= 0  
		fs_movim_cyb.referencia			= 'Efectivo'
		fs_movim_cyb.valor_id			= 1  // efectivo                   

	}
	
	$rcd.boleta_detalle_to_boleta_cabecera.importe_total = $rcd.boleta_detalle_to_boleta_cabecera.importe_cheques + $rcd.boleta_detalle_to_boleta_cabecera.importe_efectivo
	
	$rcd.boleta_detalle_to_boleta_cabecera.boleta_cabecera_caja_to_saldos_caja.saldo_efectivo += $efectivo
	$rcd.boleta_detalle_to_boleta_cabecera.boleta_cabecera_caja_to_saldos_caja.saldo_valores  += $cheques;

	var estado = databaseManager.saveData();
	if (estado == true)
	{
		databaseManager.commitTransaction()
		globals.DIALOGS.showInfoDialog('Aviso', 'Boleta de depósito ' + $rcd.boleta_detalle_to_boleta_cabecera.boleta_nro + ' anulada','OK')
	}
	else
	{
		databaseManager.rollbackTransaction()
		globals.DIALOGS.showWarningDialog('Aviso', 'No se pudo realizar la anulación del depósito','OK')
	}
	var $win = application.getWindow('ANULA_DEPOSITO')
	$win.hide()
	$win.destroy()
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"FB990D96-5EEB-47F5-880B-835DCAA22B57"}
 */
function cancelar(event) {
	var $win = application.getWindow('ANULA_DEPOSITO')
	$win.hide()
	$win.destroy()
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"616DE4B0-54A1-40CC-B6EF-CAEDCD8E95CA"}
 */
function onHide(event) {
	databaseManager.revertEditedRecords()
	databaseManager.setAutoSave(true)
	return true
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"4190D68A-4701-4250-8325-1B6F828A66A3"}
 */
function onShow(firstShow, event) {
	databaseManager.setAutoSave(false)
}
